#ifndef _CSV_STRUCT
#define _CSV_STRUCT

#include "csv_parser.hpp"

class csv_struct
{

  public:

   csv_struct(char const* _filename);

   csv_struct(std::string const& _filename);

  csv_struct const& operator=(csv_struct const& csv_struct);

  ~csv_struct();


  const csv_struct operator++ (int);

  csv_struct const& operator++();

  std::vector<std::string> const& get_line() const;

  bool eof() const;

  protected:
	void check_file_iterator(void);
   	inline file_iterator<char> const& get_file_iterator_first() const { return first; }
   	inline file_iterator<char> const& get_file_iterator_last() const { return last; }

   	inline csv_parser_info< file_iterator< char > > const& get_csv_parser_info() const { return csv_info; }

  private:

   file_iterator<char> first;
   file_iterator<char> last;
   csv_parser_info< file_iterator< char > > csv_info;

   std::string filename;
};

#endif
